草庐IT

java - 用 Java 编写脚本

全部标签

c# - 你如何对抗所有这些方式? -Javascript 及其数百万种不同的编写方式

我只是不知道该怎么想了。似乎制作javascript的人不遗余力地允许它以一百万种不同的方式编写,这样黑客就可以大展拳脚了。我终于通过使用htmlagilitypack获得了我的白名单。它应该删除因为它不在我的白名单中加上任何onclick、onmouse等。不过现在看来你可以在属性标签中写javascript。并且因为我允许SRC属性,所以我的白名单无法帮助我解决这个问题。所以我想出了在最后遍历所有有效属性并查看它们内部的想法。因此它会为每个html标签找到我允许的所有属性(例如src、href等)。然后我找到了innertext并将其设置为小写。然后我对该字符串进行了“javasc

javascript - 在使用 window.open 打开的窗口中使用 document.write 编写的脚本元素不会在 Windows 7 的 IE8 中执行

我遇到了一个似乎只出现在Windows7上的问题。它似乎在不同版本的Windows上的IE8中运行良好。基本上,我使用window.open()创建一个新窗口,然后使用document.write()写入该新窗口的内容,其中包含脚本包含。在IE中,这些脚本未正确执行。大多数时候他们根本不执行,但偶尔会有一个执行。这仅适用于清除缓存-一旦javascript文件在缓存中,它就可以正常工作。归结测试用例:测试.html:varw=window.open();varwindowHTML="\\n\\n\\n\\n\\n\\n\\n\\n\";w.document.write(windowHT

javascript - 在浏览器中禁用 JS 时,setTimeout 在 Greasemonkey 用户脚本中不起作用

我正在从事一个项目,该项目要求我的用户脚本在呈现页面时在页面上运行,而不执行页面的任何JavaScript。也就是说,我们需要在禁用JavaScript的情况下进行浏览。当我尝试延迟脚本中函数的执行时,我遇到了一个问题。每当我调用window.setTimeout时,我传入的函数永远不会执行。我想也许这个函数实际上是在unsafeWindow而不是窗口上被调用的。有什么解决方法吗?我应该提到,当启用JavaScript时,对setTimeout的调用工作正常,并且我的脚本中的所有其他内容在不启用JavaScript的情况下工作正常。感谢您的帮助! 最佳答案

javascript - 旧版浏览器的 ECMAScript 5 兼容性脚本

是否已经有一个开源项目可以为本身没有实现它的浏览器实现ECMAScript5特性?类似IE7.js的东西实现InternetExplorer中缺少的标准内容的项目。我想使用新的Function.bind()和String.trim()以及JSON.parse()函数,但它们目前仅在最新的浏览器(如最新的Chromium)中可用。我想简单地包含一个像“ecma5.js”这样的脚本,如果浏览器中缺少它,它会实现所有这些东西。那么是否已经有这样的项目可用?如果没有,那么我必须自己做。 最佳答案 es5-shim应该给你你想要的(或者,尽可

Java 网络编程 —— ServerSocket 详解

构造ServerSocketServerSocket的构造方法有以下几种重载形式ServerSocket()throwsIOExceptionServerSocket(intport)throwsIOExceptionServerSocket(intport,intbacklog)throwsIOExceptionServerSocket(intport,intbacklog,InetAddressbindAddr)throwsIOException参数port指定服务器要绑定的端口(即服务器要监听的端口),参数backlog指定客户连接请求队列的长度,参数bindAddr指定服务器要绑定的I

Java的对象包装器 & 自动装箱

有时,需要将int这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类。例如,Integer类对应基本类型int。通常,这些类被称为包装器(wrapper)。这些对象包装器类拥有很明显的名字:Integer、Long、Float、Double、Short、Byte、Character、Void和Boolean(前6个类派生于公共的父类Number)。对象包装器类是不可变的,即一旦构造了包装器,就不允许更改包装在其中的值。同时,对象包装器类还是final,因此不能定义它们的子类。有一个很有用的特性,从而更加便于添加int类型的元素到ArrayList中。下面这个调用list.add(3)

c# - 如何在 javascript 中编写等效于 Convert.ToBase64String() 的 javascript?

这个问题在这里已经有了答案:HowcanyouencodeastringtoBase64inJavaScript?(33个答案)关闭9年前。我有字节数组,我可以在C#中使用Convert.ToBase64String()方法转换它。我在javascript中编写了与此方法等效的代码,如下所示。但结果不同。在C#中:byte[]data=...Convert.ToBase64String(data)在js中functionGetStringFromByteArray(array){varresult="";for(vari=0;i如何在js中成功?

javascript - 动态加载内容脚本(chrome 扩展)

我有一个chrome扩展程序,其中包含2个由list注入(inject)的内容脚本和一个后台脚本。{"manifest_version":2,"name":"Test","permissions":["tabs","","activeTab","storage"],"content_scripts":[{"matches":["http://*/*","https://*/*"],"js":["content/autofill/lib_generic.js","content/autofill/lib.js"],"run_at":"document_end"}],"web_access

javascript - 基于java脚本中嵌套对象数组中的键对列表进行排序的最佳方法

我有以下内容:varlist=[{"item":[{a:5,a1:6,a2:7},{b:3,b1:4,b2:2}]},{"item":[{a:1,a1:2,a2:3},{b:4,b1:5,b2:6}]},{"item":[{a:2,a1:7,a2:4},{b:3,b1:7,b2:1}]}];假设我有上面的变量list,我怎样才能对它进行排序,使得list中具有item键的所有直接对象>根据键(即"a1"或"b")按升序排序。请注意,它不会更改或重新排序list[x]["item"]中的列表,而只会更改list[x]中的直接项目。标准排序函数似乎只对数组中对象内的键进行排序,但我想根据位

javascript - Google Chrome - 使用 iframe 时屏幕捕获失败,相同的脚本在没有 iframe 的情况下工作

当我使用以下脚本时,它适用于普通浏览器。但是当使用iframe时,它​​会向我显示此错误:有谁知道造成这种情况的原因并且可以解决吗?错误:channelmessageObject{type:"getScreenPending",id:24504,request:6}content.js:4channelmessageObject{type:"gotScreen",id:24504,request:6}content.js:4>>>ShareScreen:ifanyerrNavigatorUserMediaError{constraintName:"",message:"",name:"